#include "Timestamp.h"

#include <time.h>

Timestamp::Timestamp() : microSecondsSinceEpoch_(0) {}

Timestamp::Timestamp(int64_t microSecondsSinceEpoch)
    : microSecondsSinceEpoch_(microSecondsSinceEpoch)
    {}

Timestamp Timestamp::now()
{
    // time_t ti = time(NULL);  // 获取当前时间
    return Timestamp(time(NULL));
}

std::string Timestamp::toString() const
{
    // 长整型时间戳格式化
    char buf[128] = {0};
    tm* tm_time = localtime(&microSecondsSinceEpoch_);  // 长整型转成tm数据结构
    snprintf(buf, 128, "%04d/%02d/%02d %02d:%02d:%02d",
        tm_time->tm_year + 1900,
        tm_time->tm_mon + 1,
        tm_time->tm_mday,
        tm_time->tm_hour,
        tm_time->tm_min,
        tm_time->tm_sec);
    return buf;
}

// #include <iostream>
// int main()
// {
//     std::cout<< Timestamp::now().toString()<< std::endl;
//     return 0;
// }